package cn.yh.shop.user.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import cn.yh.shop.product.model.CartItem;
import cn.yh.shop.user.model.User;
import cn.yh.shop.user.model.UserOrder;
import cn.yh.shop.user.service.IUserOrderService;

/** 
*@Description:用户订单的控制层
* @author  "许荣斐"
* @time:2016年12月22日 下午4:14:47
* @version 1.0 
*/
public class OrderAction extends ActionSupport implements ModelDriven<CartItem>{

	/**
	 * @Description: serialVersionUID : 序列化
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * logger : 日志
	 */
	private static Logger logger = LogManager.getLogger(OrderAction.class);
	
	/**
	 * 实体模型
	 */
	@Autowired
	private CartItem  cartItem;
	   /**
	 * userorderservice : 订单业务的实现类
	 */
	@Autowired
	private IUserOrderService userOrderServiceImpl;
	
	/**
	 * status :从页面传来的订单要查询的状态
	 */
	private String status;
	
	
	/**
	 * @return the status
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * @param status the status to set
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * @param cartItem the cartItem to set
	 */
	public void setCartItem(CartItem cartItem) {
		this.cartItem = cartItem;
	}

	/**
	 * @Description:显示购买商品到待支付页
	 * @author: "许荣斐"
	 * @time:2016年12月23日 下午12:27:07
	 */
	public String toPay(){
		try {
			ActionContext.getContext().getSession().put("payInfo", cartItem);
		} catch (Exception e) {
			e.printStackTrace();
		}
		logger.info(cartItem);
		
		return SUCCESS;
	}
	/**
	 * @Description:显示用户订单
	 * @author: "许荣斐"
	 * @time:2016年12月23日 下午12:27:07
	 */
	public String showOrder(){
		
		try {
			User user = (User)ActionContext.getContext().getSession().get("data");
			logger.info(user);
			
			Map<String , Object> map = new HashMap<String , Object>();
			map.put("userId", user.getId());
			map.put("status", status);
			logger.info(map.get("userId")+";"+map.get("status"));
			
			List<UserOrder> list = userOrderServiceImpl.dynQueryUserOrder(map);
			for (UserOrder userOrder : list) {
				logger.info("订单详情:"+userOrder.getOrderItems().size());
			}
			ActionContext.getContext().getSession().put("orderList", list);
		} catch (Exception e) {
			e.printStackTrace();
		}
		logger.info(cartItem);
		
		return SUCCESS;
	}

	@Override
	public CartItem getModel() {
		return cartItem;
	}

}
